package com.example.yupao.config;

import lombok.Data;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @Date 2024/3/25 17:54
 * @description: Redisson 的配置, 用于分布式锁的实现.
 *               Redisson 客户端
 * .
 * @Author LittleNight
 */
@Configuration
// 从 yml 文件中读取配置信息
//@ConfigurationProperties(prefix = "spring.redis")
@Data
public class RedissonConfig {

    // 从配置文件 yml 文件中读取信息
    private String host;

    private String port;

    // 注入一个 bean
    @Bean
    public RedissonClient redissonClient() {
        // 1. 创建配置
        Config config = new Config();
        //  设置地址
//        String RedissonAddress = String.format("redis://%s:%s", host, port);
        String RedissonAddress = "redis://119.23.70.68:6300";
        // 使用单个服务器地址, 没有开集群,   设置地址和使用哪个数据库
        config.useSingleServer().setAddress(RedissonAddress)
                .setPassword("111111")
                .setDatabase(3) // 此处使用第三个数据库
        ;
        // 2. 创建 RedissonClient 对象
        RedissonClient redissonClient = Redisson.create(config);
        return redissonClient;
    }
}
